#include <iostream>
using namespace std;
int a[5][15],b[30],c[15],n=8,ans;
bool used[15];
int check(int t)
{
    if(used[c[t]])return -1;
    if(b[t+c[t]])return -1;
    int so=t-c[t];
    if(so>=0&&a[1][so])return -1;
    if(so<0&&a[2][-so])return -1;
    return 1;
}
void prn(){
	for(int i=1;i<=n;++i){
		for(int j=1;j<c[i];++j)cout<<0<<' ';
		cout<<1;
		for(int j=c[i]+1;j<=n;++j)cout<<' '<<0;
		cout<<endl;
	}
}
void nhh(int no)
{
    if(no==n+1)
    {
    	cout<<++ans<<endl;
        return;
    }
    for(int i=1;i<=n;++i)
    {
        c[no]=i;
        if(check(no)==1)
        {
            used[i]=1;
            b[no+i]=1;
            if(no-i>=0)a[1][no-i]=1;
            else a[2][i-no]=1;
            nhh(no+1);
            used[i]=0;
            b[no+i]=0;
            if(no-i>=0)a[1][no-i]=0;
            else a[2][i-no]=0;
        }
        c[no]=0;
    }
}
int main()
{
    nhh(1);
    return 0;
}
